package com.huangwei;

import java.sql.ResultSet;
import java.sql.ResultSetMetaData;

public class DBTestDriver2 {

	public static void main(String[] args) {
		/*

		 * 新建 dynamic web project 

		 * 连接数据库：将驱动jar引入项目，将数据库驱动jar拷入项目的WebContent/WEB-INF/lib下即可

		 * 

		 * 

		 */
		try {
			
			// 4、组织数据操作sql语句

			String strSql = "select * from dept";
			// 5、执行数据操作处理

			ResultSet rs = DBFactory.getDBDriverInstance().query(strSql);
			// 6、根据数据操作结果进行业务逻辑处理

			// 遍历结果集显示查询结果

			while (rs != null && rs.next()) {
				// 使用get方法获取字段内容

				System.out.print("第一列：" + rs.getObject(1));
				System.out.println(" DEPARTMENT_NAME: " + rs.getObject("DEPARTMENT_NAME"));
			}
			
			// 将光标放到结果集的最前面（第一行之前）,在oracle中需要在创建Statement时设置两个属性值；

			rs.beforeFirst();
			System.out.println("-----------------");
			// 获取与列相关的信息

			ResultSetMetaData rsmd = rs.getMetaData();
			// 获取查询结果集的列数

			int colCount = rsmd.getColumnCount();
			while (rs != null && rs.next()) {
				// 使用for循环输出当前结果集中当前行中所有的列信息

				for (int i = 1; i <= colCount; i++) {
					System.out.print("\t" + rsmd.getColumnLabel(i) + "-" 
				           + rs.getObject(rsmd.getColumnLabel(i)));
				}
				System.out.println();
			}
			// 7、关闭资源

			if (rs != null) {
				rs.close();
			}
			
		} catch (Exception e) {
			// 数据库连接处理异常

			System.out.println("Oracle-Jdbc:数据库连接异常");
			e.printStackTrace();
		}
	}

}
